Add more icon entry tests
authorMatthias Clasen <mclasen@redhat.com>
Sat, 19 Dec 2015 00:32:24 +0000 (19:32 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 19 Dec 2015 00:38:19 +0000 (19:38 -0500)
This test shows that changing icon types works.

tests/testentryicons.c

index df1d02becb065593499232a51b62d2b7fa56fb16..d9921edc9ade64037205db02f209b6014452a500 100644 (file)
@@ -49,6 +49,50 @@ drag_data_get_cb (GtkWidget        *widget,
     }
 }
 
+static void
+set_blank (GtkWidget *button,
+           GtkEntry  *entry)
+{
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))
+    gtk_entry_set_icon_from_icon_name (entry, GTK_ENTRY_ICON_SECONDARY, NULL);
+}
+
+static void
+set_icon_name (GtkWidget *button,
+               GtkEntry  *entry)
+{
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))
+    gtk_entry_set_icon_from_icon_name (entry, GTK_ENTRY_ICON_SECONDARY, "media-floppy");
+}
+
+static void
+set_gicon (GtkWidget *button,
+           GtkEntry  *entry)
+{
+  GIcon *icon;
+
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))
+    {
+      icon = g_themed_icon_new ("gtk-yes");
+      gtk_entry_set_icon_from_gicon (entry, GTK_ENTRY_ICON_SECONDARY, icon);
+      g_object_unref (icon);
+    }
+}
+
+static void
+set_pixbuf (GtkWidget *button,
+            GtkEntry  *entry)
+{
+  GdkPixbuf *pixbuf;
+
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))
+    {
+      pixbuf = gdk_pixbuf_new_from_resource ("/org/gtk/libgtk/inspector/logo.png", NULL);
+      gtk_entry_set_icon_from_pixbuf (entry, GTK_ENTRY_ICON_SECONDARY, pixbuf);
+      g_object_unref (pixbuf);
+    }
+}
+
 int
 main (int argc, char **argv)
 {
@@ -56,6 +100,11 @@ main (int argc, char **argv)
   GtkWidget *grid;
   GtkWidget *label;
   GtkWidget *entry;
+  GtkWidget *box;
+  GtkWidget *button1;
+  GtkWidget *button2;
+  GtkWidget *button3;
+  GtkWidget *button4;
   GIcon *icon;
   GtkTargetList *tlist;
 
@@ -183,6 +232,25 @@ main (int argc, char **argv)
   gtk_widget_set_hexpand (entry, TRUE);
   gtk_grid_attach (GTK_GRID (grid), entry, 1, 4, 1, 1);
 
+  box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+  gtk_grid_attach (GTK_GRID (grid), box, 0, 5, 3, 1);
+
+  button1 = gtk_radio_button_new_with_label (NULL, "Blank");
+  g_signal_connect (button1, "toggled", G_CALLBACK (set_blank), entry);
+  gtk_container_add (GTK_CONTAINER (box), button1);
+  button2 = gtk_radio_button_new_with_label (NULL, "Icon Name");
+  gtk_radio_button_join_group (GTK_RADIO_BUTTON (button2), GTK_RADIO_BUTTON (button1));
+  g_signal_connect (button2, "toggled", G_CALLBACK (set_icon_name), entry);
+  gtk_container_add (GTK_CONTAINER (box), button2);
+  button3 = gtk_radio_button_new_with_label (NULL, "GIcon");
+  gtk_radio_button_join_group (GTK_RADIO_BUTTON (button3), GTK_RADIO_BUTTON (button1));
+  g_signal_connect (button3, "toggled", G_CALLBACK (set_gicon), entry);
+  gtk_container_add (GTK_CONTAINER (box), button3);
+  button4 = gtk_radio_button_new_with_label (NULL, "Pixbuf");
+  gtk_radio_button_join_group (GTK_RADIO_BUTTON (button4), GTK_RADIO_BUTTON (button1));
+  g_signal_connect (button4, "toggled", G_CALLBACK (set_pixbuf), entry);
+  gtk_container_add (GTK_CONTAINER (box), button4);
+
   gtk_widget_show_all (window);
 
   gtk_main();